package com.ruoyi.shop.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品对象 shop_product
 * 
 * @author Alan Zhang
 * @date 2021-09-16
 */
public class ShopProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品ID */
    private Long id;

    /** 分类Id */
    @Excel(name = "分类Id")
    private Long categoryId;

    private String categoryName;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 商品编号 */
    @Excel(name = "商品编号")
    private String productNo;

    /** 内容 */
    @Excel(name = "内容")
    private String content;

    /** 产品卖点 */
    @Excel(name = "产品卖点")
    private String usp;

    /** 缩略图 */
    @Excel(name = "缩略图")
    private String thumbnail;

    /** 产品规格 */
    @Excel(name = "产品规格")
    private String specs;

    /** 排序编号 */
    @Excel(name = "排序编号")
    private Long orderNumber;

    /** 商品价格 */
    @Excel(name = "商品价格")
    private BigDecimal price;

    /** 原始价格 */
    @Excel(name = "原始价格")
    private BigDecimal originPrice;

    /** 限时优惠价（早鸟价） */
    @Excel(name = "限时优惠价")
    private BigDecimal limitedPrice;

    /** 限时优惠截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "限时优惠截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date limitedTime;

    /** 状态 1上架  2下架*/
    @Excel(name = "状态")
    private Integer status;

    /** 评论状态，默认允许评论 */
    @Excel(name = "评论状态")
    private Integer commentStatus;

    /** 评论总数 */
    @Excel(name = "评论总数")
    private Long commentCount;

    /** 最后评论时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后评论时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date commentTime;

    /** 访问量 */
    @Excel(name = "访问量")
    private Long viewCount;

    /** 真实访问量 */
    @Excel(name = "真实访问量")
    private Long realViewCount;

    /** 销售量，用于放在前台显示 */
    @Excel(name = "销售量")
    private Long salesCount;

    /** 供货商ID */
    @Excel(name = "供货商ID")
    private Long supplierId;

    /** 供货商 */
    @Excel(name = "供货商")
    private String supplierName;

    /** 是否特价 0否 1是 */
    @Excel(name = "是否特价", readConverterExp = "0=否,1=是")
    private Integer isSpecial;

    /** 是否新品 0否 1是 */
    @Excel(name = "是否新品", readConverterExp = "0=否,1=是")
    private Integer isNew;

    /** 真实的访问量 */
    @Excel(name = "真实的访问量")
    private Long realSalesCount;

    /** 剩余库存 */
    @Excel(name = "剩余库存")
    private Long stock;

  public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setProductNo(String productNo) 
    {
        this.productNo = productNo;
    }

    public String getProductNo() 
    {
        return productNo;
    }
    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }

    public void setUsp(String usp) 
    {
        this.usp = usp;
    }

    public String getUsp() 
    {
        return usp;
    }
    public void setThumbnail(String thumbnail) 
    {
        this.thumbnail = thumbnail;
    }

    public String getThumbnail() 
    {
        return thumbnail;
    }
    public void setSpecs(String specs) 
    {
        this.specs = specs;
    }

    public String getSpecs() 
    {
        return specs;
    }
    public void setOrderNumber(Long orderNumber) 
    {
        this.orderNumber = orderNumber;
    }

    public Long getOrderNumber() 
    {
        return orderNumber;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setOriginPrice(BigDecimal originPrice) 
    {
        this.originPrice = originPrice;
    }

    public BigDecimal getOriginPrice() 
    {
        return originPrice;
    }
    public void setLimitedPrice(BigDecimal limitedPrice) 
    {
        this.limitedPrice = limitedPrice;
    }

    public BigDecimal getLimitedPrice() 
    {
        return limitedPrice;
    }
    public void setLimitedTime(Date limitedTime) 
    {
        this.limitedTime = limitedTime;
    }

    public Date getLimitedTime() 
    {
        return limitedTime;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setCommentStatus(Integer commentStatus) 
    {
        this.commentStatus = commentStatus;
    }

    public Integer getCommentStatus() 
    {
        return commentStatus;
    }
    public void setCommentCount(Long commentCount) 
    {
        this.commentCount = commentCount;
    }

    public Long getCommentCount() 
    {
        return commentCount;
    }
    public void setCommentTime(Date commentTime) 
    {
        this.commentTime = commentTime;
    }

    public Date getCommentTime() 
    {
        return commentTime;
    }
    public void setViewCount(Long viewCount) 
    {
        this.viewCount = viewCount;
    }

    public Long getViewCount() 
    {
        return viewCount;
    }
    public void setRealViewCount(Long realViewCount) 
    {
        this.realViewCount = realViewCount;
    }

    public Long getRealViewCount() 
    {
        return realViewCount;
    }
    public void setSalesCount(Long salesCount) 
    {
        this.salesCount = salesCount;
    }

    public Long getSalesCount() 
    {
        return salesCount;
    }
    public void setSupplierId(Long supplierId) 
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public void setIsSpecial(Integer isSpecial)
    {
        this.isSpecial = isSpecial;
    }

    public Integer getIsSpecial() 
    {
        return isSpecial;
    }

    public Integer getIsNew() {
        return isNew;
    }

    public void setIsNew(Integer isNew) {
        this.isNew = isNew;
    }

    public void setRealSalesCount(Long realSalesCount)
    {
        this.realSalesCount = realSalesCount;
    }

    public Long getRealSalesCount() 
    {
        return realSalesCount;
    }
    public void setStock(Long stock) 
    {
        this.stock = stock;
    }

    public Long getStock() 
    {
        return stock;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("title", getTitle())
            .append("productNo", getProductNo())
            .append("content", getContent())
            .append("usp", getUsp())
            .append("thumbnail", getThumbnail())
            .append("specs", getSpecs())
            .append("orderNumber", getOrderNumber())
            .append("price", getPrice())
            .append("originPrice", getOriginPrice())
            .append("limitedPrice", getLimitedPrice())
            .append("limitedTime", getLimitedTime())
            .append("status", getStatus())
            .append("commentStatus", getCommentStatus())
            .append("commentCount", getCommentCount())
            .append("commentTime", getCommentTime())
            .append("viewCount", getViewCount())
            .append("realViewCount", getRealViewCount())
            .append("salesCount", getSalesCount())
            .append("supplierId", getSupplierId())
            .append("isSpecial", getIsSpecial())
            .append("isNew", getIsNew())
            .append("realSalesCount", getRealSalesCount())
            .append("stock", getStock())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
